package com.quectel.core.module.device.dto;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;

import java.io.Serializable;
import java.util.Date;

/**
 * @author caolu
 * @email louis.cao@quectel.com
 * @date 2019-05-31 12:10:44
 */
@Data
public class DeviceColumnDto implements Serializable {

    /**
     * 主键id
     */
    private Long id;
    /**
     * 实体名称
     */
    private String entityName;
    /**
     * 中文字段名称
     */
    private String cnName;
    /**
     * 默认值
     */
    private String defaultValue;

    /**
     * 设备种类
     */
    private Long deviceCategoryId;
    /**
     * 设备种类名称
     */
    private String deviceCategoryName;
    /**
     * 设备类型
     */
    private Long deviceTypeId;
    /**
     * 设备类型名称
     */
    private String deviceTypeName;

    /**
     * 是否显示 0：不显示 1.显示
     */
    private Byte columnShow;
    /**
     * 单位
     */
    private String unit;
    /**
     * 字段类型 1布尔 2数值 3枚举 4文本
     */
    private Byte fieldType;
    /**
     * 字典对应标识
     */
    private String fieldDictJson;

    /**
     * 备注
     */
    private String remark;
    /**
     * 创建人ID
     */
    private String creator;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 修改时间
     */
    private Date editTime;
    /**
     * 更新者
     */
    private String editor;

    @AllArgsConstructor
    public enum FieldTypeEnum {
        BOOL((byte) 1),
        NUMBER((byte) 2),
        ENUM((byte) 3),
        TEXT((byte) 4);

        @Getter
        private Byte type;
    }

}
